Cấu trúc logic của các gói Windows_Installer

Một gói mô tả cách cài đặt của một hay nhiều sản phẩm đầy đủ và được xác định một cách phổ quát bởi một mã số GUID Nhiều thành phần được nhóm lại thành thành tính năng, và một sản phẩm được cấu thành từ các tính năng đó. Windows Installer không xử lý về sự phụ thuộc giữa các sản phẩm.

Sản phẩm

Một chương trình đã được cài đặt và có thể chạy (hoặc tập hợp chương trình) được gọi là một sản phẩm. Một sản phẩm là được xác định một cách độc nhất bởi một mã số GUID (thuộc tính ProductCode) cho phép nó có thẩm quyền được định danh trên toàn thế giới. Số GUID kết hợp với số phiên bản (thuộc tính ProductVersion) cho phép quản lý việc phát hành các tệp và khóa đăng ký của sản phẩm.

Một gói bao gồm những gói logic và các siêu dữ liệu có liên quan đến cách gói thực thi khi chạy. Ví dụ, việc thay đổi một tập tin thực thi EXE trong sản phẩm có thể yêu cầu thay đổi ProductCode hoặc ProductVersion để quản lý việc phát hành. Trong trường hợp chỉ đơn thuần thay đổi hoặc thêm một điều kiện khởi động (nhưng phần còn lại giống chính xác như ở phiên bản cũ) thì vẫn bị yêu cầu các thay đổi PackageCode để phát hành tập MSI.

Tính năng

Một tính năng là một sự phân cấp của nhóm các thành phần. Một tính năng có thể có một số lượng bất kỳ thành phần khác cũng như các thành phần con. Các gói nhỏ hơn có thể bao gồm một tính năng duy nhất. Các bộ cài đặt phức tạp hơn thường cho người dùng lựa chọn "cài đặt tùy chỉnh" để chọn tính năng được cài đặt hoặc gỡ bỏ.

Tác giả  của gói định nghĩa các tính năng của sản phẩm. Ví dụ đối với việc cài đặt một bộ xử lý văn bản, có thể đặt các tập tin cốt lõi của chương trình vào một tính năng và các tệp trợ giúp, kiểm tra chính tả và mô-đun văn phòng khác vàocác tính năng bổ sung.

Thành phần

Một thành phần là đơn vị cơ bản của một sản phẩm. Mỗi thành phần được Windows Installer xử lý như một đơn vị. Trình cài đặt không thể chỉ cài đặt chỉ một phần của một thành phần.[3] Các thành phần có thể chứa tệp chương trình, thư mục, thành phần COM, khóa registry và các shortcut. Người dùng không trực tiếp tương tác với các thành phần.

Các thành phần được xác định trên toàn cầu bởi GUIDs; Do đó cùng một thành phần có thể chia sẻ giữa một số tính năng của cùng một gói hoặc nhiều gói, lý tưởng thông qua việc sử dụng các mô-đun hợp nhất.

Đường dẫn chính

Một đường dẫn chính là một tệp cụ thể, khoá registry hoặc nguồn dữ liệu ODBC mà tác giả của gói đã chỉ định là quan trọng cho một thành phần nhất định. Bởi vì một tập tin là loại phổ biến nhất của đường dẫn quan trọng, thuật ngữ tập tin khóa thường được sử dụng. Một thành phần chỉ có thể chứa nhiều nhất một đường dẫn chính; Nếu một thành phần không có đường dẫn chính rõ ràng, thư mục đích của thành phần được coi là đường dẫn chính. Khi một chương trình MSI được khởi chạy, Windows Installer kiểm tra sự tồn tại của các đường dẫn chính. Nếu có sự không khớp giữa trạng thái hệ thống hiện tại và giá trị được chỉ định trong gói MSI (ví dụ: thiếu tệp khóa), tính năng liên quan được cài đặt lại. Quá trình này được gọi là tự chữa bệnh hoặc tự sửa chữa. Hai thành phần khác nhau không nên sử dụng chung một đường dẫn chính.

Tài liệu tham khảo

WikiPedia: Windows_Installer http://filext.com/file-extension/msi http://msdn.microsoft.com/en-us/library/2kt85ked.a... http://msdn.microsoft.com/en-us/library/aa367541(V... http://msdn.microsoft.com/en-us/library/aa367548(V... http://msdn.microsoft.com/en-us/library/aa368264(V... http://msdn.microsoft.com/en-us/library/aa369293(V... http://msdn.microsoft.com/en-us/library/aa369554(V... http://msdn.microsoft.com/en-us/library/aa371185(V... http://msdn.microsoft.com/en-us/library/aa371185.a... http://msdn.microsoft.com/en-us/library/aa371370(V...